Optimized dynamic number insertion (dni)

ABSTRACT

Disclosed are various implementations directed to optimizing a number pool for dynamic number insertion (DNI) used for call attribution by considering physical characteristics of the DNI number assigned to a specific channel versus characteristics of consumers within that channel to make more optimized DNI number assignments.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation of, and claims priority to, U.S.patent application Ser. No. 16/670,310 filed on Oct. 31, 2019 (AttorneyDocket No. 11133-076US1), the contents which are hereby incorporated byreference in their entirety and made part of the present application.

BACKGROUND

As known and appreciated by skilled artisans, in DNI-based callattribution (for internet-based advertising channels) it is possible(e.g., via JavaScript) to insert a specific phone number intointernet-based advertisements when used for a specific channel thatcorresponds to the specific phone number. Conventionally, the specificphone numbers that are assigned to a channel come from a pool ofreusable phone numbers and are dynamically inserted into web page ads.The specific number assigned to any specific channel can initially beselected at random when assigned to each such web page and then used forpresentation of that ad in that channel from that point forward. Assuch, when a specific phone number is placed in an advertisement for aspecific channel—and the same specific phone number is subsequentlyinserted into future presentations of the same advertisement in the samechannel—the assignment and insertion of the specific number is basedonly on the channel corresponding to the advertisement being presented.

However, DNI phone number assignment and utilization does not considerthe phone number itself with regard to the channel for which it isassigned, nor does it consider demographic information of the channelitself when selecting a number to assign, and thus misses benefits thatcould be derived from more deliberate and considered assignment ofspecific phone numbers to specific channels for increased consumer callsand resulting sales and revenue. For example, if a channel largelycomprises baby boomers, and if the DNI number assignment systemdetermines or is made aware that baby boomers are more likely to dial anumber associated with an ad if it is a toll-free number (e.g., an “800”number or equivalent), then the DNI number assigned to that channelshould be a toll-free number. Conversely, if a channel largely comprisesmillennials, and if the DNI number assignment system determines or ismade aware that millennials are less likely to dial a number associatedwith an ad if it is a toll-free number (e.g., an “800” number orequivalent), then the DNI number assigned to that channel should be aregular area code number (and not a toll-free number). Similarly, thesystem might determine that a channel largely comprises religiousindividuals who are adverse to uses and instances of the number “666”(for its symbolic association with evil) and therefore should notutilize phone number with three running sixes.

SUMMARY

Disclosed are various implementations directed to optimizing a numberpool for dynamic number insertion (DNI) used for call attribution byconsidering physical characteristics of the DNI number assigned to aspecific channel versus characteristics of consumers within that channelto make more optimized DNI number assignments.

More specifically, disclosed herein are various implementations directedto systems, processes, methods, and other implementations for optimizinga number pool for dynamic number insertion (DNI) used for callattribution, for example, comprising: analyzing historic utilization ofa DNI number pool; determining a plurality of distinguishable consumerparameters having a business-positive correlation to a subset of numbersfrom among the pool of numbers; identifying more optimum DNI numbercharacteristics corresponding to the plurality of distinguishableconsumer parameters and the subset of numbers; modifying the DNI numberpool based on the more optimum DNI number characteristics; and modifyingDNI number selection rules based on the modified DNI number pool.

Certain implementations disclosed herein may further comprise analyzingaggregate context information corresponding to the historic utilizationof the DNI number pool so that determining a plurality ofdistinguishable consumer parameters having a positive correlation to asubset of numbers from among the pool of numbers is based at least inpart on the analysis of the context information. Select implementationsmay further comprise modifying a cross-channel call attribution rulebased at least in part on the analysis of the context information.

Further disclosed herein are various alternative implementationsdirected to one or more of the following: wherein modifying the DNInumber pool comprises the addition of at least one new number to the DNInumber pool; wherein modifying DNI number selection rules comprises theaddition of a rule for utilizing the at least one new number added tothe DNI number pool; wherein modifying DNI number selection rulescomprises the addition of a rule for utilizing the at least one newnumber for more than one channel; wherein analyzing historic utilizationof a DNI number pool includes aggregate information on cross-channelcall attribution.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary and the following detailed description ofillustrative implementations are better understood when read inconjunction with the appended drawings. For the purpose of illustratingthe implementations, there is shown in the drawings exampleconstructions of the implementations; however, the implementations arenot limited to the specific methods and instrumentalities disclosed. Inthe drawings:

FIG. 1 is a block diagram illustrating an exemplary network-basedadvertising delivery infrastructure pertaining to variousimplementations described herein;

FIG. 2 is a modified block diagram illustrating traditional callattribution pertaining to various implementations described herein;

FIG. 3 is a modified block diagram illustrating DNI-based callattribution pertaining to various implementations described hereinrelative to the exemplary network-based advertising deliveryinfrastructure of FIG. 1;

FIG. 4 is a process flow diagram illustrating optimization of a numberpool for dynamic number insertion (DNI) used for call attributionrepresentative of various implementations described herein;

FIG. 5 is a process flow diagram illustrating utilization of anoptimized dynamic number insertion (DNI) phone number representative ofseveral implementations described herein;

FIG. 6 is a partial process flow diagram illustrating override anoptimizing of dynamic number insertion (DNI) for call attribution as analternative to element 530 of FIG. 5 representative of certainimplementations described herein; and

FIG. 7 is a block diagram of an example computing environment that maybe used in conjunction with example implementations and aspects hereindisclosed.

DETAILED DESCRIPTION

Certain terms used herein may also be used interchangeably with otherterms used herein and such terms should be given the broadestinterpretation possible unless explicitly noted otherwise. For example,as used herein, the terms “distributed” and “decentralized” are usedinterchangeably and the use of either term is intended to fully includethe meaning of the other term without limitation.

An understanding of various concepts are helpful to a broader and morecomplete understanding of the various implementations disclosed herein,and skilled artisans will readily appreciate the implications thesevarious concepts have on the breath and depth of the variousimplementations herein disclosed.

Call Attribution and Dynamic Number Insertion

As well-known and readily-appreciated by skilled artisans, basic “callattribution” is a method for tracking advertising efforts at variouslevels of granularity through the utilization of unique phone numbersassigned to a plurality of defined advertising “channels” such that,when a consumer calls in, the specific channel that originates,generates, or is attributable for the consumer's call can be ascertainedby the specific phone number used by the consumer. For web-basedadvertising, dynamic number insertion (DNI) is also well-known andreadily-appreciated by skilled artisans as a method for call attributionin network-, web-, or Internet-based advertising delivery.

More specifically, call attribution can be used to differentiate betweendifferent advertising campaigns, different advertisements, differentadvertising media, and so forth. For example, advertisement A may haveone call-in number #1 and advertisement B might have call-in number #2when published in magazine X, but both A and B might have differentnumbers when published in magazine Y, and different numbers again whenpublished in newspaper Z, wherein each unique dial-in number defines aunique channel for call attribution. In addition, different numbersmight also be used for different advertising periods (e.g., first week,second week, etc.) and other measurable advertising differentiators (orparameters) that define different advertising channels.

For web-based advertising, dynamic number insertion (DNI) is alsowell-known and readily appreciated by skilled artisans. DNI is theutilization of a plurality of unique phone numbers from a reusable poolof phone numbers that are dynamically inserted into a web page adpresented to a consumer based on any of several different factorspertaining to the web page ad. For example, an ad appearing on onewebsite might use phone number #101 while the same ad appearing onanother website might use phone number #102, and so forth. Similarly, anad appearing on one website on one day might use phone number #101 whilethe same ad appearing on the same website on another day might use phonenumber #201, and so forth.

Because the webpage view for a consumer is effectively generated at themoment the consumer requests it, the ad can be dynamically generatedwith a unique phone number at the time the webpage view is generated. Inthis manner, the specific web-based channel attributable for a consumercall to the company can be similar ascertained, and the phone number forthe web-based ad can be returned to the reusable pool for reutilizationonce certain conditions or thresholds are met.

For both traditional call attribution and DNI-based call attribution, itis not uncommon for an advertisement presented in one channel (theintended channel) being transferred to another channel (and unintendedchannel). For example, a consumer might take an image of an ad presentedto the consumer on a retail website (the intended channel) and then postthat image on a social media platform (creating a new and unknownunintended channel) where said ad is then seen by a second consumer onthe social media platform, and it is the second consumer (not the firstconsumer) that calls the company using the number. Since the secondconsumer did not in fact utilize the retail website (i.e., did not getthe phone number from the intended channel), attributing the call fromthe second consumer to the retail website would be inaccurate.

Context Awareness

Various implementations disclosed herein are directed to context-awaredynamic determinations for DNI insertion of phone numbers into web-basedadvertisements where different phone numbers are assigned and deployed(e.g., using JavaScript or other approaches) based on both the channeland the context in which the advertisement being deployed. For example,for a specific internet-based channel (e.g., on a channel correspondingto a social media platform) that is predominantly utilized during thenight by older consumers (who collectively make calls more often when atoll-free number is presented) but is predominantly utilized during theday by younger consumers (who collectively make calls more often when atraditional area code number is presented), an ad presented duringnighttime hours could utilize a first phone number that is toll-free(e.g., area code 800) while the same ad used during daytime hours couldutilize a typical area-code phone number (e.g. area code 302).

This type of time-based context for variable consumer demographics canbe applied to other demographic contexts such as, for example, consumerlocation and other features related thereto (such as weather, localevents, etc.). For example, if consumers in one location prefer localphone numbers, then a number with the local area code (e.g., area code512) might be displayed in the ad, whereas in the same channel a numberwith a prestigious area code (e.g., area code 212) might be utilized inads presented to consumers in another geographic location who arefavorably inclined to call numbers having the prestigious area code.

The use of context in such a manner can be seen (and not incorrectly) asnarrowing one channel into multiple distinguishable channels, butbecause context can extent across different channels, change moredynamically than more fixed attributes used to differentiate channels,and so forth, the concept of context is a convenient construct forenhanced DNI utilization. For example, for certain contexts a specificphone number might be utilized in more than one channel, such as in apower-outage context when normal use of phones (both landline and mobilephones) is disrupted and general channel differentiation is not asuseful as event-specific context differentiation, or when theadvertisers online operations are disrupted and call-in customeractivity is skewed upward as a result.

DNI Assignment Optimization

The various implementations disclosed herein seek to use all availabledata (such as to demographics, psychographics, call metadata, callerdata, etc.) to determine the best phone number (that is, the bestpattern for a phone number) for utilization in specific channels. Bygathering together advertisements, phone numbers, and context data, asystem can analyze said data to determine which patterns provided bestresults for which advertisements in which contexts utilizing certainphone numbers in lieu of other phone numbers. For example, the systemlearns using 888 number has better effect on baby boomers (i.e., morelikely to get baby boomers to respond to an ad that has a toll-freephone number), while using a 310 area code is more attractive tomillennials (i.e., younger people are more likely to respond to an adwith a regular area code).

Advertising Delivery Infrastructure

FIG. 1 is a block diagram illustrating an exemplary network-basedadvertising delivery infrastructure pertaining to variousimplementations described herein. In FIG. 1, a communications network110 operationally couples consumers 120 to a call center 130, anadvertiser 140, a DNI system, and various content delivery servers 112,114, 116 for delivery of web-based content including but not limited tocommercial websites, social media platforms, communication applications,news feeds, data resources, and so forth. The advertiser 140 may be aretail company (or an entity acting on behalf of a retail company) andis associated with both the call center 130 and the DNI system. The callcenter 140 may be configured to receive calls made to several differentphone numbers 132, 134, 136 and the DNI system 150 is configured toinsert these different phone numbers 132, 134, 136 into advertisementsgenerated by the content delivery servers 112, 114, 116 on behalf of theadvertiser 140 for presentation to consumers 120. Consumers 120,responding to the advertisements they receive from the content deliveryservers 112, 114, 116, may then call the call center 130 using thespecific phone number provided to them in the ad that they received. Inthis manner, the call center 130 can identify the specificadvertisement, and the specific channel for that advertisement, that ledeach customer 120 to call the call center 130.

In more general terms, consumers 120 may interact with a call center 130using voice, email, text, and web interfaces in order to communicatewith agents (not shown) through a network 110. Agents may be remote fromthe call center 130 and handle communications with consumers 120 onbehalf of an advertiser 140. Consumers 120 may communicate using aplurality of devices including but not limited to a telephone, a mobilesmartphone, a tablet, a laptop, a desktop computer, or other suchdevices. In particular, telephone-based communication may traverse thenetwork 110 as a public switched telephone networks (PSTN), Voice overInternet Protocol (VoIP) telephony (via the Internet), etc. The networktypes are provided by way of example and are not intended to limit typesof networks used for communications.

The call center 130 be in a single location or may be distributed over aplurality of locations and may comprise it own servers, databases, andother components. In particular, the call center 130 may includeautomated call distribution (ACD) systems, computer telephonyintegration (CTI) systems, and a plurality of databases for storinghistorical information, and business information (such as informationpertaining to specific advertising campaigns), and technical information(such as routing data). The call center 130 may also include a varietyof different servers such as email servers, instant messaging (IM)servers, social media servers, SMS servers, routing servers, SIP servers(as part of IP-based PBXs), outbound servers, statistics servers, andreporting/dashboard servers.

The call center 130 may include a number of other components. Forexample, the call center 130 may provide for speech analytics (e.g.,post-call and real-time) to capture, structure and analyze unstructuredphone conversations to uncover the reasons why people call, and to allowa company to identify and address an issue while the caller is still onthe line. Call analytics may be used to extract information fromcustomer calls for further analysis or action. Robotic processautomation (RPA) may leverage artificial intelligent (AI), machinelearning, workflow and other technologies to automate the processing ofrepetitive tasks, initiate actions and communicate with other systems oremployees. RPA emulates the processes performed by human workers and canbe trained to adapt to changing conditions, anomalies and newsituations. Desktop analytics (DA) may capture, track and analyze eventson the agent desktop. Real-time guidance/next-best action (NBA) toolsmay give agents the right information at the right time to deliver apersonalized experience to each consumer.

Additionally, recording systems and related applications may be used tocapture audio between consumers and agents and may also captureeverything that happens during interactions and what agents do on theirdesktops. Surveying tools may also provide the ability to create anddeploy post-interaction consumer feedback surveys in voice and digitalchannels.

Consumers 120 may initiate inbound telephone calls to the call center130 via an end-user telephony device (e.g., landline phone or mobilephone) via one of several telephone numbers 132, 134, 136 utilized bythe call center 130. For example, a consumer 130 calling on a telephonehandset may connect through the PSTN and terminate on a private branchexchange (PBX).

FIG. 2 is a modified block diagram 200 illustrating traditional callattribution pertaining to various implementations described herein. InFIG. 2, the advertiser 210 may define a plurality of channels 212, 214,216 for distribution of advertising (or “ad”) having included therein achannel-specific phone number 212′, 214′, 216′. For example, channel 212may be magazine advertising, channel 214 may be newspaper advertising,and channel 216 may be billboard advertising. Of course these channels212, 214, 216 need not be limited to print advertising but can includeadvertisements in any of a variety of different channels utilized today.

Consumers 222, 224, 226, 228 may receive the ad 220 with one of thechannel-specific phone numbers 212′, 214′, 216′, and the consumers 222,224, 226, 228 may call the channel-specific phone number 212′, 214′,216′ on the ad they received. These calls are received at the callcenter 230 configured to receive calls corresponding to actual phonenumbers 212″, 214″, 216″ utilized by the call center 230.

As shown in FIG. 2, the channel-specific phone numbers 212′, 214′, 216′included in the ad 220 are intended identify the specific channel 212,214, 216 where the ad 220 appeared that led consumers 222, 224, 226, 228to call the call center 230. In this manner, the advertiser is able toascertain how effective the ad 220 performed in each channel 212, 214,216.

FIG. 3 is a modified block diagram 300 illustrating DNI-based callattribution pertaining to various implementations described hereinrelative to the exemplary network-based advertising deliveryinfrastructure of FIG. 1. In FIG. 3, the advertiser 310 may define aplurality of network-based channels 312, 314, 316—such as, for example,different websites—for distribution of advertising (“ads”) havingincluded therein DNI-generated channel-specific phone number 312′, 314′,316′ provided by DNI server 302 based on a pool of advertiser phonenumbers maintained in storage 304 and corresponding to each channel 312,314, 316. For example, channel 312 may be a social media website (orgroup thereof), channel 314 may be a news media website (or groupthereof), and channel 316 may be a search engine (or group thereof),among other possibilities. Of course these channels 312, 314, 316 neednot be limited to websites but could also include a variety of othernetwork-based delivery technologies. Accordingly, consumers 322, 324,326, 328 may receive the ad 320 with one of the channel-specific phonenumbers 312′, 314′, 316′, and the consumers 322, 324, 326, 328 may callthe channel-specific phone number 312′, 314′, 316′ on the ad displayedin the channel they are utilizing. These calls are received at the callcenter 330 configured to receive calls corresponding to actual phonenumbers 312″, 314″, 316″ utilized by the call center 330.

As shown in FIG. 3, the channel-specific phone numbers 312′, 314′, 316′included in the ad 320 real-time by the DNI technology and are intendedto identify the specific channel 312, 314, 316 where the ad 320 appearedthat led consumers 322, 324, 326, 328 to call the call center 330. Inthis manner, the advertiser 310 is able to ascertain how effective thead 320 performed in each channel 312, 314, 316 based on the callsreceived at the call center 330.

Context-Aware DNI

One approach for context-aware dynamic number insertion (DNI) for callattribution may comprise: receiving a DNI request from an ad-basedcontent server; determining, from among a plurality of channels, achannel that corresponds to the ad-based content server; determining acontext for the DNI request for the corresponding channel; andselecting, based on the determined context, a number from among a set ofnumbers corresponding to the channel for return to the ad-based contentserver. This approach may further comprise further comprising receivingcontext-related information from a source other than the ad-basedcontent server so that the determining a context for the DNI requestcomprises analysis of the context-related information received from thesource. This approach may also further comprise receivingcontext-related information from the ad-based content server so that thedetermining a context for the DNI request comprises analysis of thecontext-related information received from the ad-based content server.

FIG. 4 is a process flow diagram 400 illustrating optimization of anumber pool for dynamic number insertion (DNI) used for call attributionrepresentative of various implementations described herein. In FIG. 4,at 410 an optimizing system may analyze historic utilization of a DNInumber pool with regard to its channels, consumers, and sales in lightof various demographic information available. At 420 the system may thendetermine consumer parameters based on specific DNI numbers, forexample, that channels predominantly serving consumers do not generatecalls when associated with DNI number having certain patterns. At 430,the system then identifies more optimum DNI number characteristics basedon the consumer parameters and, at 440, may modify the DNI number poolbased on these more optimum DNI number characteristics. At 450 thesystem may also modify the DNI number selection rules (if necessary)based on the modified number pool such as, for example, selectingcertain DNI numbers only for certain channels and preclude use ofcertain numbers for other certain channels.

FIG. 5 is a process flow diagram 500 illustrating utilization, by a DNIserver for example, for real-time optimized dynamic number insertion(DNI) representative of several implementations described herein. InFIG. 5, at 510 the system receives a DNI request along with consumerparameters which, at 520, the system analyzes to determine an optimumDNI number for the requesting channel based on the consumer parametersprovided and, at 530, returns the more optimized DNI number for use inthe ad.

FIG. 6 is a partial process flow diagram illustrating overriding anoptimization of dynamic number insertion (DNI) for call attribution asan alternative to element 530 of FIG. 5 representative of certainimplementations described herein. In FIG. 6, at 442 a determination ismade as to whether an optimum number should be used to override thedefault (or random) selection of a DNI number for use with a specificchannel. If yes, then the system provides a more optimum DNI number foruse with the channel in lieu of the default (or randomly selected) phonenumber. If no, then the system provides the default number for thechannel.

Computing Environment

FIG. 7 is a block diagram of an example computing environment 1000 thatmay be used in conjunction with the various implementations hereindisclosed. Computing environment 1000 is only one example of a suitablecomputing environment and is not intended to suggest any limitation asto the scope of use or functionality.

Numerous other general purpose or special purpose computing systemenvironments or configurations may be used. Examples of well-knowncomputing systems, environments, and/or configurations that may besuitable for use include, but are not limited to, personal computers(PCs), server computers, handheld or laptop devices, multiprocessorsystems, microprocessor-based systems, network PCs, minicomputers,mainframe computers, embedded systems, distributed computingenvironments that include any of the above systems or devices, and thelike.

Computer-executable instructions, such as program modules, beingexecuted by a computer may be used. Generally, program modules includeroutines, programs, objects, components, data structures, and so forththat perform particular tasks or implement particular abstract datatypes. Distributed computing environments may be used where tasks areperformed by remote processing devices that are linked through acommunications network or other data transmission medium. In adistributed computing environment, program modules and other data may belocated in both local and remote computer storage media including memorystorage devices.

With reference to FIG. 7, an exemplary system for implementing aspectsdescribed herein includes a computing device, such as computing device1000. In a basic configuration, computing device 1000 typically includesat least one processing unit 1002 and memory 1004. Depending on theexact configuration and type of computing device, memory 1004 may bevolatile (such as random access memory (RAM)), non-volatile (such asread-only memory (ROM), flash memory, etc.), or some combination of thetwo. This basic configuration is illustrated in FIG. 7 by dashed line1006 as may be referred to collectively as the “compute” component.

Computing device 1000 may have additional features/functionality. Forexample, computing device 1000 may include additional storage (removableand/or non-removable) including, but not limited to, magnetic or opticaldisks or tape. Such additional storage is illustrated in FIG. 7 byremovable storage 1008 and non-removable storage 1010.

Computing device 1000 typically includes a variety of computer readablemedia. Computer readable media can be any available media that can beaccessed by device 1000 and include both volatile and non-volatilemedia, as well as both removable and non-removable media.

Computer storage media include volatile and non-volatile media, as wellas removable and non-removable media, implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules or other data. Memory1004, removable storage 1008, and non-removable storage 1010 are allexamples of computer storage media. Computer storage media include, butare not limited to, RAM, ROM, electrically erasable program read-onlymemory (EEPROM), flash memory or other memory technology, CD-ROM,digital versatile disks (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store theinformation and which can be accessed by computing device 1000. Any suchcomputer storage media may be part of computing device 1000.

Computing device 1000 may contain communication connection(s) 1012 thatallow the device to communicate with other devices. Computing device1000 may also have input device(s) 1014 such as a keyboard, mouse, pen,voice input device, touch input device, and so forth. Output device(s)1016 such as a display, speakers, printer, and so forth may also beincluded. All these devices are well-known in the art and need not bediscussed at length here.

Computing device 1000 may be one of a plurality of computing devices1000 inter-connected by a network. As may be appreciated, the networkmay be any appropriate network, each computing device 1000 may beconnected thereto by way of communication connection(s) 1012 in anyappropriate manner, and each computing device 1000 may communicate withone or more of the other computing devices 1000 in the network in anyappropriate manner. For example, the network may be a wired or wirelessnetwork within an organization or home or the like, and may include adirect or indirect coupling to an external network such as the Internetor the like.

It should be understood that the various techniques described herein maybe implemented in connection with hardware or software or, whereappropriate, with a combination of both. Thus, the processes andapparatus of the presently disclosed subject matter, or certain aspectsor portions thereof, may take the form of program code (i.e.,instructions) embodied in tangible media, such as floppy diskettes,CD-ROMs, hard drives, or any other machine-readable storage mediumwhere, when the program code is loaded into and executed by a machine,such as a computer, the machine becomes an apparatus for practicing thepresently disclosed subject matter.

In the case of program code execution on programmable computers, thecomputing device generally includes a processor, a storage mediumreadable by the processor (including volatile and non-volatile memoryand/or storage elements), at least one input device, and at least oneoutput device. One or more programs may implement or utilize theprocesses described in connection with the presently disclosed subjectmatter, e.g., through the use of an API, reusable controls, or the like.Such programs may be implemented in a high level procedural orobject-oriented programming language to communicate with a computersystem. However, the program(s) can be implemented in assembly ormachine language. In any case, the language may be a compiled orinterpreted language and it may be combined with hardwareimplementations.

Although exemplary implementations may refer to utilizing aspects of thepresently disclosed subject matter in the context of one or morestand-alone computer systems, the subject matter is not so limited, butrather may be implemented in connection with any computing environment,such as a network or distributed computing environment. Still further,aspects of the presently disclosed subject matter may be implemented inor across a plurality of processing chips or devices, and storage maysimilarly be affected across a plurality of devices. Such devices mightinclude PCs, network servers, and handheld devices, for example.

Certain implementations described herein may utilize a cloud operatingenvironment that supports delivering computing, processing, storage,data management, applications, and other functionality as an abstractservice rather than as a standalone product of computer hardware,software, etc. Services may be provided by virtual servers that may beimplemented as one or more processes on one or more computing devices.In some implementations, processes may migrate between servers withoutdisrupting the cloud service. In the cloud, shared resources (e.g.,computing, storage) may be provided to computers including servers,clients, and mobile devices over a network. Different networks (e.g.,Ethernet, Wi-Fi, 802.x, cellular) may be used to access cloud services.Users interacting with the cloud may not need to know the particulars(e.g., location, name, server, database, etc.) of a device that isactually providing the service (e.g., computing, storage). Users mayaccess cloud services via, for example, a web browser, a thin client, amobile application, or in other ways. To the extent any physicalcomponents of hardware and software are herein described, equivalentfunctionality provided via a cloud operating environment is alsoanticipated and disclosed.

Additionally, a controller service may reside in the cloud and may relyon a server or service to perform processing and may rely on a datastore or database to store data. While a single server, a singleservice, a single data store, and a single database may be utilized,multiple instances of servers, services, data stores, and databases mayinstead reside in the cloud and may, therefore, be used by thecontroller service. Likewise, various devices may access the controllerservice in the cloud, and such devices may include (but are not limitedto) a computer, a tablet, a laptop computer, a desktop monitor, atelevision, a personal digital assistant, and a mobile device (e.g.,cellular phone, satellite phone, etc.). It is possible that differentusers at different locations using different devices may access thecontroller service through different networks or interfaces. In oneexample, the controller service may be accessed by a mobile device. Inanother example, portions of controller service may reside on a mobiledevice. Regardless, controller service may perform actions including,for example, presenting content on a secondary display, presenting anapplication (e.g., browser) on a secondary display, presenting a cursoron a secondary display, presenting controls on a secondary display,and/or generating a control event in response to an interaction on themobile device or other service. In specific implementations, thecontroller service may perform portions of methods described herein.

General Implementations

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

The drawings described above and the written description of specificstructures and functions below are not presented to limit the scope ofwhat has been invented or the scope of the appended claims. Rather, thedrawings and written description are provided to teach any personskilled in the art to make and use the inventions for which patentprotection is sought. Those skilled in the art will appreciate that notall features of a commercial implementation of the inventions aredescribed or shown for the sake of clarity and understanding.

Persons of skill in this art will also appreciate that the developmentof an actual commercial implementation incorporating aspects of theinventions will require numerous implementation-specific decisions toachieve the developer's ultimate goal for the commercial implementation.Such implementation-specific decisions may include, and likely are notlimited to, compliance with system-related, business-related,government-related and other constraints, which may vary by specificimplementation, location and from time to time. While a developer'sefforts might be complex and time-consuming in an absolute sense, suchefforts would be, nevertheless, a routine undertaking for those of skillin this art having benefit of this disclosure.

It should be understood that the implementations disclosed and taughtherein are susceptible to numerous and various modifications andalternative forms. Thus, the use of a singular term, such as, but notlimited to, “a” and the like, is not intended as limiting of the numberof items. Also, the use of relational terms, such as, but not limitedto, “top,” “bottom,” “left,” “right,” “upper,” “lower,” “down,” “up,”“side,” and the like, are used in the written description for clarity inspecific reference to the drawings and are not intended to limit thescope of the invention or the appended claims.

Particular implementations are described with reference to blockdiagrams and/or operational illustrations of methods. It should beunderstood that each block of the block diagrams and/or operationalillustrations, and combinations of blocks in the block diagrams and/oroperational illustrations, may be implemented by analog and/or digitalhardware, and/or computer program instructions. Computer programsinstructions for use with or by the implementations disclosed herein maybe written in an object oriented programming language, conventionalprocedural programming language, or lower-level code, such as assemblylanguage and/or microcode. The program may be executed entirely on asingle processor and/or across multiple processors, as a stand-alonesoftware package or as part of another software package. Such computerprogram instructions may be provided to a processor of a general-purposecomputer, special-purpose computer, ASIC, and/or other programmable dataprocessing system.

The executed instructions may also create structures and functions forimplementing the actions specified in the mentioned block diagramsand/or operational illustrations. In some alternate implementations, thefunctions/actions/structures noted in the drawings may occur out of theorder noted in the block diagrams and/or operational illustrations. Forexample, two operations shown as occurring in succession, in fact, maybe executed substantially concurrently or the operations may be executedin the reverse order, depending on the functionality/acts/structureinvolved.

The term “computer-readable instructions” as used above refers to anyinstructions that may be performed by a computer processor and/or othercomponents. Similarly, the term “computer-readable medium” refers to anystorage medium that may be used to store computer-readable instructions.Such a medium may take many forms, including, but not limited to,non-volatile media, volatile media, and transmission media. Non-volatilemedia may include, for example, optical or magnetic disks, such as thestorage device. Volatile media may include dynamic memory, such as mainmemory. Transmission media may include coaxial cables, copper wire andfiber optics, including wires of the bus. Transmission media may alsotake the form of acoustic or light waves, such as those generated duringradio frequency (RF) and infrared (IR) data communications. Common formsof computer-readable media may include, for example, a floppy disk, aflexible disk, hard disk, magnetic tape, any other magnetic medium, a CDROM, DVD, any other optical medium, punch cards, paper tape, any otherphysical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASHEPROM, any other memory chip or cartridge, a carrier wave, or any othermedium from which a computer can read.

While the disclosed implementations have been described with referenceto one or more particular implementations, those skilled in the art willrecognize that many changes may be made thereto. Therefore, each of theforegoing implementations and obvious variations thereof is contemplatedas falling within the spirit and scope of the disclosed implementations,which are set forth in the claims that follow.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

What is claimed:
 1. A method for optimizing a number pool for dynamicnumber insertion (DNI) used for call attribution, the method comprising:analyzing historic utilization of a DNI number pool; identifying a setof optimum DNI number characteristics based on the historic utilizationanalysis; and modifying the DNI number pool based on the set of optimumDNI number characteristics.
 2. The method of claim 1, wherein analyzinghistoric utilization of a DNI number pool includes aggregate informationon cross-channel call attribution, and further comprising analyzingaggregate context information corresponding to the historic utilizationof the DNI number pool.
 3. The method of claim 2, further comprisingmodifying a cross-channel call attribution rule based at least in parton the analysis of the context information.
 4. The method of claim 1,wherein modifying the DNI number pool comprises the addition of at leastone new number to the DNI number pool.
 5. The method of claim 1, furthercomprising modifying DNI number selection rules based on the modifiedDNI number pool.
 6. The method of claim 5, wherein modifying DNI numberselection rules comprises the addition of a rule for utilizing the atleast one new number added to the DNI number pool.
 7. The method ofclaim 5, wherein modifying DNI number selection rules comprises theaddition of a rule for utilizing the at least one new number for morethan one channel.
 8. A system for optimizing a number pool for dynamicnumber insertion (DNI) used for call attribution, the system comprising:a memory; a processor operatively coupled to the memory for: analyzinghistoric utilization of a DNI number pool; identifying a set of optimumDNI number characteristics based on the historic utilization analysis;and modifying the DNI number pool based on the set of optimum DNI numbercharacteristics.
 9. The system of claim 8, wherein analyzing historicutilization of a DNI number pool includes aggregate information oncross-channel call attribution, and further comprising analyzingaggregate context information corresponding to the historic utilizationof the DNI number pool.
 10. The system of claim 9, further comprisingmodifying a cross-channel call attribution rule based at least in parton the analysis of the context information.
 11. The system of claim 8,wherein modifying the DNI number pool comprises the addition of at leastone new number to the DNI number pool.
 12. The system of claim 8,further comprising modifying DNI number selection rules based on themodified DNI number pool.
 13. The system of claim 12, wherein modifyingDNI number selection rules comprises the addition of a rule forutilizing the at least one new number added to the DNI number pool. 14.The system of claim 12, wherein modifying DNI number selection rulescomprises the addition of a rule for utilizing the at least one newnumber for more than one channel.
 15. A non-transitory computer-readablemedium comprising computer-readable instructions for optimizing a numberpool for dynamic number insertion (DNI) used for call attribution, thecomputer-readable instructions comprising instructions that cause aprocessor to: analyze historic utilization of a DNI number pool;identify a set of optimum DNI number characteristics based on thehistoric utilization analysis; and modify the DNI number pool based onthe set of optimum DNI number characteristics.
 16. The computer-readablemedium of claim 15, further comprising instructions whereby analyzinghistoric utilization of a DNI number pool includes aggregate informationon cross-channel call attribution, and further comprising analyzingaggregate context information corresponding to the historic utilizationof the DNI number pool.
 17. The computer-readable medium of claim 16,further comprising instructions for modifying a cross-channel callattribution rule based at least in part on the analysis of the contextinformation.
 18. The computer-readable medium of claim 15, furthercomprising instructions whereby modifying the DNI number pool comprisesthe addition of at least one new number to the DNI number pool.
 19. Thecomputer-readable medium of claim 15, further comprising instructionsfor modifying DNI number selection rules based on the modified DNInumber pool.
 20. The computer-readable medium of claim 19, furthercomprising instructions whereby modifying DNI number selection rulescomprises either the addition of a rule for utilizing the at least onenew number added to the DNI number pool or the addition of a rule forutilizing the at least one new number for more than one channel.